import { OrderStatus, PayStatus } from './statusConst'
/**
 * 状态工具类
 */
export default {
  /**
   * 获取订单状态文本
   */
  getOrderStatusText(status) {
    const map = {
      [OrderStatus.BACK]: '已回退',
      [OrderStatus.RECOVER]: '已恢复',
      [OrderStatus.STOP]: '已中止',
      [OrderStatus.INVALID]: '已作废',
      [OrderStatus.CLOSE]: '已关闭', //已发货
      [OrderStatus.REJECT]: '已反审',
      [OrderStatus.PASS]: '已审核',
      [OrderStatus.SAVE]: '已保存',
      [OrderStatus.REMOVE]: '已删除',
      [OrderStatus.EDIT]: '已编辑',
      [OrderStatus.ADD]: '已新增',
    }
    // console.log(' map[status]', map[status])
    return map[status] || '未知状态'
  },
  /**
   * 获取订单状态文本
   */
  getPayStatusText(status) {
    const map = {
      [PayStatus.UNPAYED]: '未支付',
      [PayStatus.PAYED]: '已支付',
      [PayStatus.REFUND]: '退款中',
      [PayStatus.REFUNDSUCCESS]: '退款成功',
      [PayStatus.REFUNDFAIL]: '退款失败',
    }
    // console.log(' map[status]', map[status])
    return map[status] || '未知状态'
  },
  //获取订单状态
  getStatus(orderStatus, payStatus, isAccept) {
    if (orderStatus === OrderStatus.SAVE && payStatus === PayStatus.PAYED) {
      return this.getPayStatusText(payStatus)
    } else if (orderStatus === OrderStatus.CLOSE && payStatus === PayStatus.PAYED) {
      return '已发货'
    } else if (isAccept == 1) {
      return '已验收'
    } else if (orderStatus === OrderStatus.INVALID) {
      return '已取消'
    } else if (payStatus === PayStatus.REFUND || payStatus === PayStatus.REFUNDSUCCESS || payStatus === PayStatus.REFUNDFAIL) {
      return this.getPayStatusText(payStatus)
    } else if (orderStatus === OrderStatus.SAVE && payStatus === PayStatus.UNPAYED) {
      return this.getPayStatusText(payStatus)
    }
  },
  /**
   * 获取状态对应的颜色
   */
  getStatusColor(status, type = 'common') {
    // console.log('status', status,type)
    const colorMap = {
      order: {
        [OrderStatus.BACK]: '#999999',
        [OrderStatus.RECOVER]: '#999999',
        [OrderStatus.STOP]: '#999999',
        [OrderStatus.INVALID]: '#999999',
        [OrderStatus.CLOSE]: '#F2801C',
        [OrderStatus.REJECT]: '#999999',
        [OrderStatus.PASS]: '#26BB55',
        [OrderStatus.SAVE]: '#26BB55',
        [OrderStatus.REMOVE]: '#999999',
        [OrderStatus.EDIT]: '#999999',
        [OrderStatus.ADD]: '#26BB55',
      },
    }

    return colorMap[type]?.[status] || '#333'
  },
  /**
   * 判断订单是否已结束
   * 订单状态 已终止，已作废，已关闭
   */
  isOrderClose(payStatus, orderStatus) {
    return orderStatus === OrderStatus.CLOSE || orderStatus === OrderStatus.STOP || orderStatus === OrderStatus.INVALID || payStatus == PayStatus.REFUNDSUCCESS || payStatus == PayStatus.REFUNDFAIL
  },
  /**
   * 判断是否可以退款
   */
  idOrderRefund(payStatus, orderStatus) {
    //已发货，已支付
    return payStatus === PayStatus.PAYED && (orderStatus === OrderStatus.CLOSE || orderStatus === OrderStatus.SAVE)
  },

  /**
   * 判断是否可以重新支付
   */
  isOrderPay(payStatus) {
    //已发货，已支付
    return payStatus === PayStatus.UNPAYED
  },
}
